# 使用 ARG 定义构建参数（在 FROM 之前）
ARG BASE_IMAGE=openjdk:8u102-jre
ARG TARGET_JAR=target/springboot.jar
ARG RUN_DIR=/
ARG RUN_JAR=springboot.jar
# 基础镜像阶段（必须作为第一个有效指令）
FROM ${BASE_IMAGE}

# 重新声明ARG并赋值给ENV
ARG RUN_DIR
ARG RUN_JAR
ARG TARGET_JAR
ENV RUN_DIR=${RUN_DIR} \
    RUN_JAR=${RUN_JAR} \
    TARGET_JAR=${TARGET_JAR}

# 定义容器内环境变量
ENV TZ=Asia/Shanghai \
    SPRING_PROFILES_ACTIVE=default \
    JAVA_OPTS="-Xms2g -Xmx2g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+UseG1GC -XX:+PrintGCDetails -Xloggc:gc.log" \
    PORT=8080
# 创建工作目录并复制 JAR 文件

WORKDIR ${RUN_DIR}
COPY ${TARGET_JAR} ${RUN_DIR}${RUN_JAR}

# 暴露端口
EXPOSE $PORT
#CMD echo "RUN ..."
# 启动命令（使用 exec 格式避免 shell 注入）
CMD ["sh","-c","java $JAVA_OPTS -jar \"$RUN_DIR$RUN_JAR\" --server.port=$PORT --spring.profiles.active=$SPRING_PROFILES_ACTIVE"]
#CMD ["sh", "-c", "sleep infinity"]

